<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>tinyOS: 互斥信号量</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">tinyOS
   &#160;<span id="projectnumber">v1.00</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">互斥信号量</div>  </div>
</div><!--header-->
<div class="contents">

<p>tinyOS的互斥信号量的实现  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__t_mutex.html">_tMutex</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__t_mutex_info.html">_tMutexInfo</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gaa6112cfb92458b1b8a76c4a0ed988469"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct__t_mutex.html">_tMutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#gaa6112cfb92458b1b8a76c4a0ed988469">tMutex</a></td></tr>
<tr class="separator:gaa6112cfb92458b1b8a76c4a0ed988469"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8ad2a424a8470cc1b822de9d62b71d81"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct__t_mutex_info.html">_tMutexInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#ga8ad2a424a8470cc1b822de9d62b71d81">tMutexInfo</a></td></tr>
<tr class="separator:ga8ad2a424a8470cc1b822de9d62b71d81"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gae12a3d5db0c3834e8a3837358f4f3302"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#gae12a3d5db0c3834e8a3837358f4f3302">tMutexInit</a> (<a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#gaa6112cfb92458b1b8a76c4a0ed988469">tMutex</a> *mutex)</td></tr>
<tr class="separator:gae12a3d5db0c3834e8a3837358f4f3302"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2608713c70ae2de620f39566c023abe9"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#ga2608713c70ae2de620f39566c023abe9">tMutexWait</a> (<a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#gaa6112cfb92458b1b8a76c4a0ed988469">tMutex</a> *mutex, uint32_t waitTicks)</td></tr>
<tr class="separator:ga2608713c70ae2de620f39566c023abe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga26ec3e3848541464c9ba38de67875e11"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#ga26ec3e3848541464c9ba38de67875e11">tMutexNoWaitGet</a> (<a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#gaa6112cfb92458b1b8a76c4a0ed988469">tMutex</a> *mutex)</td></tr>
<tr class="separator:ga26ec3e3848541464c9ba38de67875e11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad192db653abe0e792860dccd9e4050ba"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#gad192db653abe0e792860dccd9e4050ba">tMutexNotify</a> (<a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#gaa6112cfb92458b1b8a76c4a0ed988469">tMutex</a> *mutex)</td></tr>
<tr class="separator:gad192db653abe0e792860dccd9e4050ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8e1b65bea50a87032971eb167d411723"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#ga8e1b65bea50a87032971eb167d411723">tMutexDestroy</a> (<a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#gaa6112cfb92458b1b8a76c4a0ed988469">tMutex</a> *mutex)</td></tr>
<tr class="separator:ga8e1b65bea50a87032971eb167d411723"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga01ba0fbff6eaeae119c26db5573f358a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#ga01ba0fbff6eaeae119c26db5573f358a">tMutexGetInfo</a> (<a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#gaa6112cfb92458b1b8a76c4a0ed988469">tMutex</a> *mutex, <a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#ga8ad2a424a8470cc1b822de9d62b71d81">tMutexInfo</a> *info)</td></tr>
<tr class="separator:ga01ba0fbff6eaeae119c26db5573f358a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>tinyOS的互斥信号量的实现 </p>
<dl class="section author"><dt>Author</dt><dd>01课堂 lishutong </dd></dl>
<dl class="section date"><dt>Date</dt><dd>2017-06-01 </dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section copyright"><dt>Copyright</dt><dd>版权所有，禁止用于商业用途 </dd></dl>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="gaa6112cfb92458b1b8a76c4a0ed988469"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa6112cfb92458b1b8a76c4a0ed988469">&#9670;&nbsp;</a></span>tMutex</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="struct__t_mutex.html">_tMutex</a>  <a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#gaa6112cfb92458b1b8a76c4a0ed988469">tMutex</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga8ad2a424a8470cc1b822de9d62b71d81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8ad2a424a8470cc1b822de9d62b71d81">&#9670;&nbsp;</a></span>tMutexInfo</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="struct__t_mutex_info.html">_tMutexInfo</a>  <a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#ga8ad2a424a8470cc1b822de9d62b71d81">tMutexInfo</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga8e1b65bea50a87032971eb167d411723"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8e1b65bea50a87032971eb167d411723">&#9670;&nbsp;</a></span>tMutexDestroy()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t tMutexDestroy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#gaa6112cfb92458b1b8a76c4a0ed988469">tMutex</a> *&#160;</td>
          <td class="paramname"><em>mutex</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>销毁信号量 </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mutex</td><td>销毁互斥信号量 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>因销毁该信号量而唤醒的任务数量 </dd></dl>

<p class="definition">Definition at line <a class="el" href="t_mutex_8c_source.html#l00180">180</a> of file <a class="el" href="t_mutex_8c_source.html">tMutex.c</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_ga8e1b65bea50a87032971eb167d411723_cgraph.png" border="0" usemap="#group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_ga8e1b65bea50a87032971eb167d411723_cgraph" alt=""/></div>
<map name="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_ga8e1b65bea50a87032971eb167d411723_cgraph" id="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_ga8e1b65bea50a87032971eb167d411723_cgraph">
<area shape="rect" id="node2" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#gab4d6c802c474b9071f48312bed3dec74" title="tTaskEnterCritical" alt="" coords="345,304,470,329"/>
<area shape="rect" id="node3" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#ga6f3aa47609478099b79d1520a9baf9b3" title="将任务从就绪列表中移除 " alt="" coords="161,81,292,107"/>
<area shape="rect" id="node7" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#gab7c2dfbda696e43a8c35ab97731837a0" title="将任务设置为就绪状态 " alt="" coords="351,255,465,280"/>
<area shape="rect" id="node10" href="group___xE4_xBA_x8B_xE4_xBB_xB6_xE6_x8E_xA7_xE5_x88_xB6_xE5_x9D_x97.html#gace850c06cc2fc2f07296e1eb4552030a" title="tEventRemoveAll" alt="" coords="164,203,288,228"/>
<area shape="rect" id="node13" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#ga21b4efbc4cb710d7d0e71678d2b13e53" title="tTaskExitCritical" alt="" coords="350,353,465,379"/>
<area shape="rect" id="node14" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#gaeb48f2b93febc962f23d9a6a72db9d8e" title="任务调度接口。通过它来选择下一个具体的任务，然后切换至该任务运行。 " alt="" coords="181,405,271,431"/>
<area shape="rect" id="node4" href="group___xE5_x8F_x8C_xE5_x90_x91_xE9_x93_xBE_xE8_xA1_xA8.html#ga58e2fef327c5254062441ec2f8a101a6" title="tListRemove" alt="" coords="543,107,639,132"/>
<area shape="rect" id="node5" href="group___xE5_x8F_x8C_xE5_x90_x91_xE9_x93_xBE_xE8_xA1_xA8.html#gad01c0c24187a334e78e7ba6d677306cb" title="tListCount" alt="" coords="367,107,448,132"/>
<area shape="rect" id="node6" href="group___xE4_xBD_x8D_xE5_x9B_xBE_xE7_xBB_x93_xE6_x9E_x84.html#ga63a37ae88a06249de873bb54340de517" title="tBitmapClear" alt="" coords="359,5,457,31"/>
<area shape="rect" id="node8" href="group___xE5_x8F_x8C_xE5_x90_x91_xE9_x93_xBE_xE8_xA1_xA8.html#ga6278d548e9b37d514acbebc25617f1b6" title="tListAddLast" alt="" coords="543,280,638,305"/>
<area shape="rect" id="node9" href="group___xE4_xBD_x8D_xE5_x9B_xBE_xE7_xBB_x93_xE6_x9E_x84.html#ga77e6ff906f4751ea7f055562b94cad54" title="tBitmapSet" alt="" coords="548,231,634,256"/>
<area shape="rect" id="node11" href="group___xE5_x8F_x8C_xE5_x90_x91_xE9_x93_xBE_xE8_xA1_xA8.html#gaf2dc8b31ed5ec5aac0b7bebc21448a78" title="tListRemoveFirst" alt="" coords="347,205,468,231"/>
<area shape="rect" id="node12" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#ga5086649a1a0f0337850b059e6d28807e" title="将延时的任务从延时队列中唤醒 " alt="" coords="342,156,474,181"/>
<area shape="rect" id="node15" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#gac9f0cf7d9a8b992eb7f43c84aeb1ddca" title="获取当前最高优先级且可运行的任务 " alt="" coords="340,403,476,428"/>
<area shape="rect" id="node19" href="group___hooks_xE6_x89_xA9_xE5_xB1_x95.html#gaf5f3298fd391c362d819f3a765834091" title="tHooksTaskSwitch" alt="" coords="343,452,472,477"/>
<area shape="rect" id="node20" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#ga0cd2c487eac7429325389fa3ee59867d" title="tTaskSwitch" alt="" coords="362,501,454,527"/>
<area shape="rect" id="node16" href="group___xE4_xBD_x8D_xE5_x9B_xBE_xE7_xBB_x93_xE6_x9E_x84.html#gae86fbb239ac4694acf71b11c7cc6b479" title="tBitmapGetFirstSet" alt="" coords="524,428,658,453"/>
<area shape="rect" id="node18" href="group___xE5_x8F_x8C_xE5_x90_x91_xE9_x93_xBE_xE8_xA1_xA8.html#ga9203dd58a7f2dafed784c397861dd203" title="tListFirst" alt="" coords="555,379,627,404"/>
<area shape="rect" id="node17" href="group___xE4_xBD_x8D_xE5_x9B_xBE_xE7_xBB_x93_xE6_x9E_x84.html#ga24bbbd4e9273fa00e125cbf600c851c1" title="tBitmapPosCount" alt="" coords="706,428,831,453"/>
</map>
</div>

</div>
</div>
<a id="ga01ba0fbff6eaeae119c26db5573f358a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga01ba0fbff6eaeae119c26db5573f358a">&#9670;&nbsp;</a></span>tMutexGetInfo()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tMutexGetInfo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#gaa6112cfb92458b1b8a76c4a0ed988469">tMutex</a> *&#160;</td>
          <td class="paramname"><em>mutex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#ga8ad2a424a8470cc1b822de9d62b71d81">tMutexInfo</a> *&#160;</td>
          <td class="paramname"><em>info</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>查询状态信息 </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mutex</td><td>查询的互斥信号量 </td></tr>
    <tr><td class="paramname">info</td><td>状态查询存储的位置 </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="t_mutex_8c_source.html#l00218">218</a> of file <a class="el" href="t_mutex_8c_source.html">tMutex.c</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_ga01ba0fbff6eaeae119c26db5573f358a_cgraph.png" border="0" usemap="#group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_ga01ba0fbff6eaeae119c26db5573f358a_cgraph" alt=""/></div>
<map name="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_ga01ba0fbff6eaeae119c26db5573f358a_cgraph" id="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_ga01ba0fbff6eaeae119c26db5573f358a_cgraph">
<area shape="rect" id="node2" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#gab4d6c802c474b9071f48312bed3dec74" title="tTaskEnterCritical" alt="" coords="327,5,452,31"/>
<area shape="rect" id="node3" href="group___xE4_xBA_x8B_xE4_xBB_xB6_xE6_x8E_xA7_xE5_x88_xB6_xE5_x9D_x97.html#ga312cd12071f2d18172b4020079af49a2" title="tEventWaitCount" alt="" coords="158,55,279,80"/>
<area shape="rect" id="node5" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#ga21b4efbc4cb710d7d0e71678d2b13e53" title="tTaskExitCritical" alt="" coords="332,104,448,129"/>
<area shape="rect" id="node4" href="group___xE5_x8F_x8C_xE5_x90_x91_xE9_x93_xBE_xE8_xA1_xA8.html#gad01c0c24187a334e78e7ba6d677306cb" title="tListCount" alt="" coords="349,55,431,80"/>
</map>
</div>

</div>
</div>
<a id="gae12a3d5db0c3834e8a3837358f4f3302"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae12a3d5db0c3834e8a3837358f4f3302">&#9670;&nbsp;</a></span>tMutexInit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tMutexInit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#gaa6112cfb92458b1b8a76c4a0ed988469">tMutex</a> *&#160;</td>
          <td class="paramname"><em>mutex</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>初始化互斥信号量 </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mutex</td><td>等待初始化的互斥信号量 </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="t_mutex_8c_source.html#l00023">23</a> of file <a class="el" href="t_mutex_8c_source.html">tMutex.c</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_gae12a3d5db0c3834e8a3837358f4f3302_cgraph.png" border="0" usemap="#group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_gae12a3d5db0c3834e8a3837358f4f3302_cgraph" alt=""/></div>
<map name="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_gae12a3d5db0c3834e8a3837358f4f3302_cgraph" id="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_gae12a3d5db0c3834e8a3837358f4f3302_cgraph">
<area shape="rect" id="node2" href="group___xE4_xBA_x8B_xE4_xBB_xB6_xE6_x8E_xA7_xE5_x88_xB6_xE5_x9D_x97.html#ga5ca43de9442770133c4c2ac38e696049" title="tEventInit" alt="" coords="132,5,209,31"/>
<area shape="rect" id="node3" href="group___xE5_x8F_x8C_xE5_x90_x91_xE9_x93_xBE_xE8_xA1_xA8.html#gab4cbecbc9ce397733c027de83ce17f81" title="tListInit" alt="" coords="257,5,321,31"/>
</map>
</div>

</div>
</div>
<a id="gad192db653abe0e792860dccd9e4050ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad192db653abe0e792860dccd9e4050ba">&#9670;&nbsp;</a></span>tMutexNotify()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t tMutexNotify </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#gaa6112cfb92458b1b8a76c4a0ed988469">tMutex</a> *&#160;</td>
          <td class="paramname"><em>mutex</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>通知互斥信号量可用 </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mutex</td><td>操作的信号量 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>tErrorOwner/tErrorNoError </dd></dl>

<p class="definition">Definition at line <a class="el" href="t_mutex_8c_source.html#l00122">122</a> of file <a class="el" href="t_mutex_8c_source.html">tMutex.c</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_gad192db653abe0e792860dccd9e4050ba_cgraph.png" border="0" usemap="#group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_gad192db653abe0e792860dccd9e4050ba_cgraph" alt=""/></div>
<map name="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_gad192db653abe0e792860dccd9e4050ba_cgraph" id="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_gad192db653abe0e792860dccd9e4050ba_cgraph">
<area shape="rect" id="node2" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#gab4d6c802c474b9071f48312bed3dec74" title="tTaskEnterCritical" alt="" coords="333,156,458,181"/>
<area shape="rect" id="node3" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#ga21b4efbc4cb710d7d0e71678d2b13e53" title="tTaskExitCritical" alt="" coords="338,304,454,329"/>
<area shape="rect" id="node4" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#ga6f3aa47609478099b79d1520a9baf9b3" title="将任务从就绪列表中移除 " alt="" coords="149,79,280,104"/>
<area shape="rect" id="node8" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#gab7c2dfbda696e43a8c35ab97731837a0" title="将任务设置为就绪状态 " alt="" coords="339,353,453,379"/>
<area shape="rect" id="node11" href="group___xE4_xBA_x8B_xE4_xBB_xB6_xE6_x8E_xA7_xE5_x88_xB6_xE5_x9D_x97.html#ga312cd12071f2d18172b4020079af49a2" title="tEventWaitCount" alt="" coords="154,151,275,176"/>
<area shape="rect" id="node12" href="group___xE4_xBA_x8B_xE4_xBB_xB6_xE6_x8E_xA7_xE5_x88_xB6_xE5_x9D_x97.html#gae1e675e01faa9fd2a37ab29b2092d646" title="tEventWakeUp" alt="" coords="159,252,269,277"/>
<area shape="rect" id="node15" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#gaeb48f2b93febc962f23d9a6a72db9d8e" title="任务调度接口。通过它来选择下一个具体的任务，然后切换至该任务运行。 " alt="" coords="169,404,259,429"/>
<area shape="rect" id="node5" href="group___xE5_x8F_x8C_xE5_x90_x91_xE9_x93_xBE_xE8_xA1_xA8.html#ga58e2fef327c5254062441ec2f8a101a6" title="tListRemove" alt="" coords="531,131,627,156"/>
<area shape="rect" id="node6" href="group___xE5_x8F_x8C_xE5_x90_x91_xE9_x93_xBE_xE8_xA1_xA8.html#gad01c0c24187a334e78e7ba6d677306cb" title="tListCount" alt="" coords="355,107,437,132"/>
<area shape="rect" id="node7" href="group___xE4_xBD_x8D_xE5_x9B_xBE_xE7_xBB_x93_xE6_x9E_x84.html#ga63a37ae88a06249de873bb54340de517" title="tBitmapClear" alt="" coords="347,5,445,31"/>
<area shape="rect" id="node9" href="group___xE5_x8F_x8C_xE5_x90_x91_xE9_x93_xBE_xE8_xA1_xA8.html#ga6278d548e9b37d514acbebc25617f1b6" title="tListAddLast" alt="" coords="532,353,626,379"/>
<area shape="rect" id="node10" href="group___xE4_xBD_x8D_xE5_x9B_xBE_xE7_xBB_x93_xE6_x9E_x84.html#ga77e6ff906f4751ea7f055562b94cad54" title="tBitmapSet" alt="" coords="536,304,622,329"/>
<area shape="rect" id="node13" href="group___xE5_x8F_x8C_xE5_x90_x91_xE9_x93_xBE_xE8_xA1_xA8.html#gaf2dc8b31ed5ec5aac0b7bebc21448a78" title="tListRemoveFirst" alt="" coords="335,255,457,280"/>
<area shape="rect" id="node14" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#ga5086649a1a0f0337850b059e6d28807e" title="将延时的任务从延时队列中唤醒 " alt="" coords="330,205,462,231"/>
<area shape="rect" id="node16" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#gac9f0cf7d9a8b992eb7f43c84aeb1ddca" title="获取当前最高优先级且可运行的任务 " alt="" coords="328,403,464,428"/>
<area shape="rect" id="node20" href="group___hooks_xE6_x89_xA9_xE5_xB1_x95.html#gaf5f3298fd391c362d819f3a765834091" title="tHooksTaskSwitch" alt="" coords="331,452,461,477"/>
<area shape="rect" id="node21" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#ga0cd2c487eac7429325389fa3ee59867d" title="tTaskSwitch" alt="" coords="350,501,442,527"/>
<area shape="rect" id="node17" href="group___xE4_xBD_x8D_xE5_x9B_xBE_xE7_xBB_x93_xE6_x9E_x84.html#gae86fbb239ac4694acf71b11c7cc6b479" title="tBitmapGetFirstSet" alt="" coords="512,452,646,477"/>
<area shape="rect" id="node19" href="group___xE5_x8F_x8C_xE5_x90_x91_xE9_x93_xBE_xE8_xA1_xA8.html#ga9203dd58a7f2dafed784c397861dd203" title="tListFirst" alt="" coords="543,403,615,428"/>
<area shape="rect" id="node18" href="group___xE4_xBD_x8D_xE5_x9B_xBE_xE7_xBB_x93_xE6_x9E_x84.html#ga24bbbd4e9273fa00e125cbf600c851c1" title="tBitmapPosCount" alt="" coords="694,452,819,477"/>
</map>
</div>

</div>
</div>
<a id="ga26ec3e3848541464c9ba38de67875e11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga26ec3e3848541464c9ba38de67875e11">&#9670;&nbsp;</a></span>tMutexNoWaitGet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t tMutexNoWaitGet </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#gaa6112cfb92458b1b8a76c4a0ed988469">tMutex</a> *&#160;</td>
          <td class="paramname"><em>mutex</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>获取信号量，如果没有获取到直接退出，不阻塞 </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mutex</td><td>等待的信号量 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>等待结果,tErrorResourceUnavaliable.tErrorNoError </dd></dl>

<p class="definition">Definition at line <a class="el" href="t_mutex_8c_source.html#l00091">91</a> of file <a class="el" href="t_mutex_8c_source.html">tMutex.c</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_ga26ec3e3848541464c9ba38de67875e11_cgraph.png" border="0" usemap="#group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_ga26ec3e3848541464c9ba38de67875e11_cgraph" alt=""/></div>
<map name="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_ga26ec3e3848541464c9ba38de67875e11_cgraph" id="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_ga26ec3e3848541464c9ba38de67875e11_cgraph">
<area shape="rect" id="node2" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#gab4d6c802c474b9071f48312bed3dec74" title="tTaskEnterCritical" alt="" coords="179,5,304,31"/>
<area shape="rect" id="node3" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#ga21b4efbc4cb710d7d0e71678d2b13e53" title="tTaskExitCritical" alt="" coords="184,55,300,80"/>
</map>
</div>

</div>
</div>
<a id="ga2608713c70ae2de620f39566c023abe9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2608713c70ae2de620f39566c023abe9">&#9670;&nbsp;</a></span>tMutexWait()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t tMutexWait </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F.html#gaa6112cfb92458b1b8a76c4a0ed988469">tMutex</a> *&#160;</td>
          <td class="paramname"><em>mutex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>waitTicks</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>等待信号量 </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mutex</td><td>等待的信号量 </td></tr>
    <tr><td class="paramname">waitTicks</td><td>最大等待的ticks数，为0表示无限等待 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>等待结果,tErrorResourceUnavaliable.tErrorNoError,tErrorTimeout </dd></dl>

<p class="definition">Definition at line <a class="el" href="t_mutex_8c_source.html#l00037">37</a> of file <a class="el" href="t_mutex_8c_source.html">tMutex.c</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_ga2608713c70ae2de620f39566c023abe9_cgraph.png" border="0" usemap="#group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_ga2608713c70ae2de620f39566c023abe9_cgraph" alt=""/></div>
<map name="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_ga2608713c70ae2de620f39566c023abe9_cgraph" id="group___xE4_xBA_x92_xE6_x96_xA5_xE4_xBF_xA1_xE5_x8F_xB7_xE9_x87_x8F_ga2608713c70ae2de620f39566c023abe9_cgraph">
<area shape="rect" id="node2" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#gab4d6c802c474b9071f48312bed3dec74" title="tTaskEnterCritical" alt="" coords="308,153,433,179"/>
<area shape="rect" id="node3" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#ga21b4efbc4cb710d7d0e71678d2b13e53" title="tTaskExitCritical" alt="" coords="313,203,429,228"/>
<area shape="rect" id="node4" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#ga6f3aa47609478099b79d1520a9baf9b3" title="将任务从就绪列表中移除 " alt="" coords="305,405,436,431"/>
<area shape="rect" id="node8" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#gab7c2dfbda696e43a8c35ab97731837a0" title="将任务设置为就绪状态 " alt="" coords="141,356,255,381"/>
<area shape="rect" id="node11" href="group___xE4_xBA_x8B_xE4_xBB_xB6_xE6_x8E_xA7_xE5_x88_xB6_xE5_x9D_x97.html#ga0bbda829b0d83072138caad66f98899a" title="tEventWait" alt="" coords="155,255,240,280"/>
<area shape="rect" id="node13" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#gaeb48f2b93febc962f23d9a6a72db9d8e" title="任务调度接口。通过它来选择下一个具体的任务，然后切换至该任务运行。 " alt="" coords="153,103,243,128"/>
<area shape="rect" id="node5" href="group___xE5_x8F_x8C_xE5_x90_x91_xE9_x93_xBE_xE8_xA1_xA8.html#ga58e2fef327c5254062441ec2f8a101a6" title="tListRemove" alt="" coords="506,455,602,480"/>
<area shape="rect" id="node6" href="group___xE5_x8F_x8C_xE5_x90_x91_xE9_x93_xBE_xE8_xA1_xA8.html#gad01c0c24187a334e78e7ba6d677306cb" title="tListCount" alt="" coords="513,356,595,381"/>
<area shape="rect" id="node7" href="group___xE4_xBD_x8D_xE5_x9B_xBE_xE7_xBB_x93_xE6_x9E_x84.html#ga63a37ae88a06249de873bb54340de517" title="tBitmapClear" alt="" coords="505,405,603,431"/>
<area shape="rect" id="node9" href="group___xE5_x8F_x8C_xE5_x90_x91_xE9_x93_xBE_xE8_xA1_xA8.html#ga6278d548e9b37d514acbebc25617f1b6" title="tListAddLast" alt="" coords="507,304,601,329"/>
<area shape="rect" id="node10" href="group___xE4_xBD_x8D_xE5_x9B_xBE_xE7_xBB_x93_xE6_x9E_x84.html#ga77e6ff906f4751ea7f055562b94cad54" title="tBitmapSet" alt="" coords="328,455,414,480"/>
<area shape="rect" id="node12" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#ga1f612696830f8adeb411745ff719377c" title="将任务加入延时队列中 " alt="" coords="317,304,425,329"/>
<area shape="rect" id="node14" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#gac9f0cf7d9a8b992eb7f43c84aeb1ddca" title="获取当前最高优先级且可运行的任务 " alt="" coords="303,104,439,129"/>
<area shape="rect" id="node18" href="group___hooks_xE6_x89_xA9_xE5_xB1_x95.html#gaf5f3298fd391c362d819f3a765834091" title="tHooksTaskSwitch" alt="" coords="306,5,436,31"/>
<area shape="rect" id="node19" href="group___xE5_x86_x85_xE6_xA0_xB8_xE6_xA0_xB8_xE5_xBF_x83.html#ga0cd2c487eac7429325389fa3ee59867d" title="tTaskSwitch" alt="" coords="325,55,417,80"/>
<area shape="rect" id="node15" href="group___xE4_xBD_x8D_xE5_x9B_xBE_xE7_xBB_x93_xE6_x9E_x84.html#gae86fbb239ac4694acf71b11c7cc6b479" title="tBitmapGetFirstSet" alt="" coords="487,80,621,105"/>
<area shape="rect" id="node17" href="group___xE5_x8F_x8C_xE5_x90_x91_xE9_x93_xBE_xE8_xA1_xA8.html#ga9203dd58a7f2dafed784c397861dd203" title="tListFirst" alt="" coords="518,129,590,155"/>
<area shape="rect" id="node16" href="group___xE4_xBD_x8D_xE5_x9B_xBE_xE7_xBB_x93_xE6_x9E_x84.html#ga24bbbd4e9273fa00e125cbf600c851c1" title="tBitmapPosCount" alt="" coords="669,80,794,105"/>
</map>
</div>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
